package com.dream.dream_ioc.beans.factory;

/**
 * 容器访问的根接口
 * 容器的基本客户端视图，其他的扩展实现在特定场景下实现更多功能
 * 对象：
 *  1.基于<b>原型设计模式</b>创建实例对象
 *  2.也可创建生命周期内的单例对象，同<b>单例设计模式</b>
 * 关键点：
 *  1.中央注册器
 *  2.中心化配置
 * @author wenpan
 */
public interface BeanFactory {

    String FACTORY_BEAN_PREFIX = "&";

    Object getBean(String name) throws RuntimeException;

    <T> T getBean(String name, Class<T> requiredType) throws RuntimeException;
}
